package org.opentcs.strategies.basic.routing.jgrapht.jjwcalg;

import jakarta.annotation.Nonnull;
import org.opentcs.data.model.Path;
import org.opentcs.data.model.Point;
import org.opentcs.data.model.Vehicle;
import org.opentcs.strategies.basic.routing.PointRouter;
import org.opentcs.strategies.basic.routing.PointRouterFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Set;

import static java.util.Objects.requireNonNull;

/**
 * 这是进行构建动态路由的抽象父类
 */
public class AbstractDyPointRouterFactory implements PointRouterFactory {

  private static final Logger LOG = LoggerFactory.getLogger(AbstractDyPointRouterFactory.class);
  /**
   * 动态地图构造器
   */
  private final DyGraphProvider graphProvider;

  public AbstractDyPointRouterFactory(@Nonnull DyGraphProvider graphProvider) {
    this.graphProvider = requireNonNull(graphProvider, "graphProvider");
  }

  @Override
  public PointRouter createPointRouter(Vehicle vehicle, Set<Point> pointsToExclude, Set<Path> pathsToExclude) {
    return null;
  }
}
